1. Field of the Invention
The present invention relates to electrical circuits generally, and to devices for analyzing and testing the operation of digital circuits. More particularly, the invention relates to devices for continuously monitoring the analog qualities of a signal in a digital circuit, to simultaneously detect certain signal characteristics that may indicate an error in circuit operation.
2. The Prior Art
Within the past twenty years, the use of digital circuits has dramatically expanded beyond the scientific community into most business establishments. For example, the average office at the present time typically utilizes one or more word processors whose basis of operation is digital circuitry. Small offices may have one word processor to simplify typing tasks. Larger businesses may have hundreds of word processors, as well as other computers devoted exclusively to tasks such as accounting and inventory control. Communications engineers typically use digital circuits to transmit information more efficiently, more accurately, and more quickly than possible with any traditional analog method. High fidelity audio enthusiasts have created a huge market for the compact disk, which stores millions of bits of information. After being read by a laser scanning device, these bits are processed into waveforms of music, which are transmitted to the listeners' ears as crystal clear sound. All of the above applications, and many more, depend upon digital circuitry for their existence. In the future, the diverse applications of digital technology are expected to again increase dramatically, as the components and their applications become faster, more reliable, and more generally available to the public.
Digital circuitry operates on the binary principle of being either "on" or "off," as represented by ones and zeros. Groups of signals which each comprise only ones or zeros are combined to form information which is used in operation of the circuitry. For example, each combination may represent data or it may represent a control instruction.
Utilizing these combinations, a microprocessor can be used to perform functions and process data at extremely high clock rates, typically at 1 MHz or more, which is equivalent to 1 million pulses per second. These pulses are then used to pace the operation of the circuit. At these high speeds and with the resultant high volume of data instructions being processed, the consequences of an error most likely will not be discernable at the time the error occurs; instead the results of an error may make an appearance only at the end of execution of a long series of instructions, or a "run" of the program. Even then, the existence of an error may not be known to the user until after several runs are complete and after someone happens to notice an inconsistency in the data or results. In summary, the lightning fast speed of data processing, together with the increasing complexity of data processing machines and digital technology, has made the detection of errors occurring during operation of digital circuits increasingly difficult.
Faced with an unknown error, the troubleshooter and/or designer of digital systems must address and resolve problems in at least two basic areas: (1) the logic of the circuit; and (2) the implementation of the circuit in hardware, with basic building blocks such as "AND" gates, "OR" gates and flip-flops. Due to the increasing complexity of the operation of a digital circuit, and in light of the huge amounts of data and information being transferred every second, finding an error can often be likened to the proverbial "finding a needle in a haystack." The second type of problems, those involving hardware, such as a faulty flip-flop, are commonly evidenced by certain characteristics of the signals passing between two or more digital components, such as the signal between an output of an OR-gate and a clock input of a flip-flop. These certain signal characteristics that may evidence an error condition will be termed a "fault."
A fault may cause an error in computing when a digital component, such as an AND gate or a flip-flop assigns an improper binary value to a signal at an input, for example, a "one" instead of a "zero" or a "zero" instead of a "one." A digital circuit will recognize a "one" if the applied signal is above a certain voltage level; in that case, the signal is said to be in the "high" state. Similarly, a "zero" will be recognized by that component if the signal voltage is less than another specified voltage level; in that case, the signal is said to be in the "low" state. If the signal is in a voltage range lying between the high and low states, the signal is said to be in the "float" state.
Many devices presently exist for analyzing the operation of digital circuits, including the logic probe, the logic analyzer and the digital oscilloscope.
The logic probe comprises digital circuitry that displays the state of the signal to which it is connected. Often, two LEDs are provided: one to indicate a high state, the other to indicate a low state. If neither is lighted, the signal is in the float state.
Some logic probes have an additional feature which allows them to "capture" pulses. Such a probe can be used to detect the existence of pulses where none should exist. However, logic probes cannot detect the existence of a bad pulse among a number of good pulses. For example, the commercially available Hewlett Packard Model 545A TTL/CMOS Logic Probe has an independent, built-in pulse memory with LED display. To utilize this feature, the memory must be reset, and the probe connected to the circuit point. A pulse will light the LED, which then remains on until reset. As another feature, the probe also indicates a return to an initial valid level from a bad level for a pulse with a period greater than or equal to 1 .mu.sec.
Another type of digital measuring instrument is the logic analyzer, which is connected to the tested circuit by a number of probes or "grabber connections" each of which acts as a simple connection without the more advanced features of the Hewlett Packard Logic Probe described above. In their connection with a logic analyzer, these probes are often grouped together in groups of eight, termed a "Probe Pod." An example of such a probe pod is the commercially available Biomation Model K100-D/10 Probe Pod. In that model, eight grabber connections are provided for connection to the circuit, and the high and low thresholds are selectable by the user. One or more pods may be connected to the logic analyzer to monitor the necessary number of connections.
In general terms, a logic analyzer is used to record and display the sequence of signal states appearing at each grabber connection of the probe pod. An internal clock is provided, so that the state of each connection is recorded with each clock pulse. The rate of the clock is generally selectable by the user, up to a maximum typically beyond 100 MHz. At 100 MHz, it requires 1 megabyte of memory to store eight channels of data for 10 ms. An operator, analyzing this data, may spend several hours analyzing the data captured in 10 ms.
The data capture may be started or stopped by many different means, such as a specific combination of data inputs to the pod. Some logic analyzers have been designed to trigger upon the detection of a voltage spike. For example, several Biomation Logic Analyzers, such as the Model 1650-D, feature a latch mode which allows monitoring of data between clock edges. When such a spike is detected between clock edges, the latch mode allows display of their relative timing with respect to other recorded signals. Voltage spikes as narrow as 5 nsec can be detected. One disadvantage of the latch mode is that it does not monitor spikes that may coincide with a clock pulse, and therefore the latch mode cannot continuously detect spikes that occur on a line. Another disadvantage is that the displayed time resolution of each spike captured is limited to the clock interval selected for recording and also the display mechanism is not easily readable by someone not familiar with the Biomation Logic Analyzer.
As another example of a logic analyzer with spike detection capabilities, the Hewlett-Packard Model 1631 A/D Logic Analyzer with scope provides the ability to trigger upon the existence of a spike, a pulse shorter than a preselected time interval. Of course, the operator must know which signal to use as a trigger; otherwise, he must look through vast amounts of data in hopes of seeing the spike. The 1631 will also record a spike as a legitimate pulse if it occurs at a clock edge.
In addition to the problems identified above, problems inherent in use of the logic analyzer include the high cost of the equipment, the specialized knowledge necessary to operate a logic analyzer effectively, and the huge amounts of information collected by the logic analyzer which must be reviewed to find a hidden error. After triggering on a spike, the subsequent data accumulated by the logic analyzer must be reviewed in an attempt to determine the source or cause of the error, often with great expense of time. Furthermore, it may be noted that, in general, when using a logic analyzer for troubleshooting, the focus is upon determining the cause of a specific error.
Another type of instrument used to test digital circuits is the oscilloscope, which draws a trace of the signal under test on an oscilloscope screen or CRT. Since each trace only lasts about a microsecond, the eye sees the average of several hundred thousand traces; a single bad trace is usually missed altogether. Even if the problem is repetitive with a period of 10 ms, it would take several hours to examine the data generated by the system under test during the 10 ms period.
A disadvantage, common to both oscilloscopes and logic analyzers, is that both gather data only intermittently, hence they may miss an infrequent problem. For example, both oscilloscopes and logic analyzers miss information that occurs between traces; further, logic analyzers miss information that falls between two sampling times.
In view of the above, it would be an important improvement in the art to provide a testing device which is responsive only to signal characteristics commonly indicative of an error, so that the focus of trouble shooting may be directed to that error. It would be a further improvement to provide a testing device which can detect such error-indicating signal characteristics that occur intermittently or within an extremely short time interval. It would be an even further improvement to provide such a testing device which is inexpensive, and easily usable by technically unskilled users. Such a device could have applications beyond troubleshooting. For instance, the testing device could be used as a standard testing device in factories that produce digital components or semiconductor chips.